In multitasking, multiprocessing and/or multithreading systems, monitoring performance metrics may be complicated. Techniques that have been used in the past such as time-based sampling or event-based sampling employ a consistent regular grid of measurement to outline and characterize the behavior of applications whose activity may at times be anything but regular.
Previous attempts to monitor activity within the context of a particular process may have required specially instrumented versions of the operating system. These techniques may also have the side effect of monitoring the special instrumentation as well as the desired performance metrics in the context of the particular process of interest. Thus results of previous techniques may have been contaminated by activity from other processes, threads or operating system instrumentation.
To date, more efficient performance monitoring in multitasking, multiprocessing and/or multithreading systems to avoid contamination by events captured from other processes and/or threads have not been fully explored.